<?php

/**
 *
 * Admin section controller.
 * A user must be a general administrator to have
 * access to the actions of this controller.
 * @author Théo Chamley
 * @package fr.ec-lyon.aeecl.codebar.application.controller
 *
 */
class AdminController extends CodeBar_AbstractController {

	/**
	 *
	 * @see CodeBar_AbstractController::init()
	 */
	public function init() {
		CodeBar_AbstractController::init();
		$this->view->headTitle("Admin");
		if(!($this->session()->user->connected)) {
			$this->_helper->redirector('index','index');//si l'user n'est pas connecté on le renvoie à  la page de connexion
		} else if(strtolower($this->session()->user->getGroupeActif()->getName()) != 'administration') {
			$this->_helper->redirector('groupchoice','index');//s'il ne fait pas partie du groupe d'admin, on le renvoie au choix de module
		}
		$this->_redirector = $this->_helper->getHelper('Redirector');
	}

	/**
	 *
	 * On the main page of the admin section
	 * there are only links to the subpages.
	 */
	public function indexAction() {
		/*
		 * JS scripts
		 */
		$this->view->headScript()->appendFile('/js/EscapeAdmin.js','text/javascript');
		$this->view->headScript()->appendFile('/js/adminmain.js','text/javascript');

		/*
		 * CSS Stylesheets
		 */
		$this->view->headLink()->appendStylesheet('/css/site.css');

		//------------
		$this->view->link = '/admin/createuser';
		$this->view->link2 = '/admin/creategroup';
		$this->view->link3 = '/admin/recharge';
		$this->view->link4 = '/admin/histo';
		$this->view->link5 = '/admin/modadmingroup';
		$this->view->link6 = '/admin/modpwd';
		$this->view->link7 = '/admin/carte';
		$this->view->link8 = '/admin/recharges';
	}

	/**
	 *
	 * Page to create a new user.
	 */
	public function createuserAction() {
		$this->view->headTitle("Ajout d'un utilisateur");

		/*
		* JS Script
		*/
		$this->view->headScript()->appendFile('/js/disable.js','text/javascript');
		$this->view->headScript()->appendFile('/js/admin/createuser.js','text/javascript');
		$this->view->headScript()->appendFile('/js/EscapeAdminLevel2.js','text/javascript');
		$this->view->headScript()->appendFile('/js/jquery/iphone-switch/jquery.iphone-switch.js','text/javascript');

		/*
		 * CSS stylesheets
		 */
		$this->view->headLink()->appendStylesheet('/css/admin/stylesheet_createuser.css');

		$form = new Application_Form_Admin_CreateUserForm();
		$this->view->form = $form;
		if($this->getRequest()->isPost()) {//si on arrive sur cette page après un Post alors on analyse les données
			$formData = $this->getRequest()->getPost();
			if($form->isValid($formData))
			{
				if(!$form->getElement('noGroup')->isChecked()) {//si l'utilisateur fait partie d'un groupe, on ajoute les bons rôles
					if($form->getValue('pwd') == $form->getValue('pwd_verif') && mb_strlen($form->getValue('pwd')) > 5) {//on vérifie que les deux password données sont bien identiques
						$new_user = new Application_Model_User($form->getValue('login'), $form->getValue('pwd'), $form->getValue('nom'),
						$form->getValue('prenom'), $form->getValue('promo'));//on crée le nouvel user
						try {
							$id_carte = $new_user->addUser();//on l'ajoute à la base
							$this->message("L'utilisateur ".$new_user->getLogin()." a bien été créé. La carte n°".$id_carte.
							" a été créée et lui a été attribuée.");
							$roles = new Application_Model_RolesUsers();
							$group = Application_Model_Groupe::getGroupById($form->getValue('groupe'));
							if($form->getValue('admingroup') == 1) {
								$roles->addMembre(Application_Model_RolesUsers::ADMIN_ID, $form->getValue('login'),
								$form->getValue('groupe'));//administration sur le groupe
								$this->message("Le rôle d'administrateur dans le groupe ".
								$group->getName().
								" a été attribué avec succès à l'utilisateur ".$form->getValue('login').".");
							} else {
								$roles->addMembre(Application_Model_RolesUsers::VENDEUR_ID, $form->getValue('login'),
								$form->getValue('groupe'));//rôle de vendeur sur le groupe
								$this->message("Le rôle de vendeur dans le groupe ".
								$group->getName().
								" a été attribué avec succès à l'utilisateur ".$form->getValue('login').".");
							}
						} catch(Zend_Exception $e) {
							$this->error($e->getMessage());
						}
					} else if($form->getValue('pwd') != $form->getValue('pwd_verif')) {
						$this->error("Les mots de passe fournis ne sont pas identiques.");
					} else {
						$this->error("Le mot de passe doit faire 6 caractères ou plus.");
					}
				} else {
					$new_user = new Application_Model_User($form->getValue('login'), "", $form->getValue('nom'),
					$form->getValue('prenom'), $form->getValue('promo'));//on crée le nouvel user
					try {
						$id_carte = $new_user->addUser();//on l'ajoute à la base
						$this->message("L'utilisateur ".$new_user->getLogin()." a bien été créé. La carte n°".$id_carte.
						" a été créée et lui a été attribuée.");
					} catch(Zend_Exception $e) {
						$this->error($e->getMessage());
					}
				}
				$this->redirect();
			}
		}
	}

	/**
	 *
	 * Page to create a new group.
	 */
	public function creategroupAction() {
		$this->jQueryUIEnable();
		$this->view->headTitle("Ajout d'un groupe");

		/*
		 * JS Scripts
		 */
		$this->view->headScript()->appendFile('/js/disable.js','text/javascript');
		$this->view->headScript()->appendFile('/js/admin/creategroup.js','text/javascript');
		$this->view->headScript()->appendFile('/js/EscapeAdminLevel2.js','text/javascript');

		/*
		 * CSS Stylesheets
		 */
		$this->view->headLink()->appendStylesheet('/css/admin/stylesheet_creategroup.css');

		$form = new Application_Form_Admin_CreateGroupForm();
		$this->view->form = $form;
		$error_exists = false;

		if($this->getRequest()->isPost()) {
			$formdata = $this->getRequest()->getPost();

			//ajout de l'admin
			$user = Application_Model_User::getByLogin($this->getRequest()->getPost('admin'));
			$initialPwd = $user->getPwd();

			/*
			 * On ne modifie le mot de passe que si l'utilisateur
			 * n'en a pas déjà un.
			 */
			if($initialPwd == '') {
				if($this->getRequest()->getPost('pwd') == $this->getRequest()->getPost('pwd_verif') &&
				mb_strlen($this->getRequest()->getPost('pwd')) >= 6) {
					try {
						$user = Application_Model_User::getByLogin($this->getRequest()->getPost('admin'))
						->changePwd(md5($this->getRequest()->getPost('pwd')));
						$this->message("Un mot de passe a été attribué avec succès à l'utilisateur ".$this->getRequest()->getPost('admin').".");
					} catch(Zend_Exception $e) {
						$this->error($e->getMessage());
						$error_exists = true;
					}
				} else if($this->getRequest()->getPost('pwd') == $this->getRequest()->getPost('pwd_verif')) {//si le mot de passe fait moins de 6 caractères
					$this->error("Le mot de passe doit faire au moins 6 caractères !");
					$error_exists = true;
				} else {
					$this->error("Les mots de passe ne sont pas identiques !");
					$error_exists = true;
				}
			}
			//fin de gestion du mot de passe de l'admin

			if(!$error_exists) {
				if($initialPwd != '' && $this->getRequest()->getPost('pwd') != '') {
					$this->error("L'utilisateur avait déjà un mot de passe. Le mot de passe de l'utilisateur n'a pas été changé.");
				}

				$group = new Application_Model_Groupe($this->getRequest()->getPost('nom'));
				$group = $group->save($this->getRequest()->getPost('nom'));
				$this->message("Le groupe ".$this->getRequest()->getPost('nom')." a été créé avec succès.");
				//historique système
				$libelle = "Création du groupe ".$this->getRequest()->getPost('nom');
				$histo = new Application_Model_HistoSystemElement($libelle);
				$histo->AddToHistoSystem();
				//fin historique

				try {
					$user->addRole($group->getID(), Application_Model_RolesUsers::ADMIN_ID);
					$this->message("L'utilisateur ".$this->getRequest()->getPost('admin').
					" est maintenant administrateur du groupe ".$this->getRequest()->getPost('nom').".");
				} catch(Zend_Exception $e){
					$this->error($e->getMessage());
				}
					
				//les admins généraux sont admins du nouveau groupe
				$users = Application_Model_RolesUsers::getMembres(Application_Model_Groupe::ADMIN_GROUP_ID);
				foreach($users as $u) {
					try {
						if($u->getLogin() != $user->getLogin()) {
							$u->addRole($group->getID(), Application_Model_RolesUsers::ADMIN_ID);
						}
					} catch(Zend_Exception $e){
						$this->error($e->getMessage());
					}
				}
				$this->message("Les administrateurs généraux ont été automatiquement ajoutés comme administrateur du groupe ".
				$this->getRequest()->getPost('nom').".");
			}

			/*
			 * On redirige vers la même page pour éviter
			 * un double envoie du formulaire.
			 */
			$this->redirect();
		}
	}

	/**
	 *
	 * Page to to recharge an account without paying.
	 */
	public function rechargeAction() {
		$this->view->headTitle("Régulation");
		$this->jQueryUIEnable();

		/*
		 * JS
		 */
		$this->view->headScript()->appendFile('/js/admin/recharge.js','text/javascript');
		$this->view->headScript()->appendFile('/js/EscapeAdminLevel2.js','text/javascript');

		/*
		 * CSS
		 */
		$this->view->headLink()->appendStylesheet('/css/admin/stylesheet_recharge.css');

		$form = new Application_Form_Admin_RechargeForm();
		$this->view->form = $form;

		if($this->getRequest()->isPost()) {
			$formdata=$this->getRequest()->getPost();
			if($form->isValid($formdata)) {
				$user = Application_Model_User::getByLogin($form->getValue('user'));
				$user->setSolde($user->getSolde()+$form->getValue('montant'))
				->update();
				//inscription dans l'historique système
				$libelle = "Recharge sans paiement d'un montant de ".$form->getValue('montant')."€ à l'utilisateur ".$form->getValue('user').". Commentaire : ".$form->getValue('libelle');
				$histo = new Application_Model_HistoSystemElement($libelle);
				$histo->AddToHistoSystem();
				//inscription dans l'historique carte
				$histo_carte = new Application_Model_HistoCarteElement($form->getValue('user'),$this->session()->user,$form->getValue('montant'),'régulation, commentaire : '.$form->getValue('libelle'));
				$histo_carte->save();
			}
			/*
			 * On redirige vers la même page
			 * pour éviter le double envoi du
			 * formulaire.
			 */
			$this->redirect();
		}
	}

	/**
	 *
	 * System history.
	 */
	public function histoAction() {
		$this->view->headTitle("Historique");
		$this->jQueryUIEnable();

		/*
		 * JS
		 */
		$this->view->headScript()->appendFile('/js/jquery/jquery.ui.datepicker-fr.js','text/javascript');
		$this->view->headScript()->appendFile('/js/jquery/jquery.dataTables.min.js','text/javascript');
		$this->view->headScript()->appendFile('/js/jquery/jquery.dataTables.dateSorting.js','text/javascript');
		$this->view->headScript()->appendFile('/js/admin/histo.js','text/javascript');
		$this->view->headScript()->appendFile('/js/EscapeAdminLevel2.js','text/javascript');

		/*
		 * CSS
		 */
		$this->view->headLink()->appendStylesheet('/css/admin/stylesheet_histo.css');
		$this->view->headLink()->appendStylesheet('/css/jqueryui/dataTable.histo_table.css');

		$form = new Application_Form_Admin_HistoForm();
		$this->view->form = $form;
	}

	/**
	 *
	 * To modify the admin of a group.
	 * @throws Zend_Exception
	 */
	public function modadmingroupAction() {
		$this->jQueryUIEnable();
		$this->view->headTitle("Gestion des administrateurs");

		/*
		 * JS
		 */
		$this->view->headScript()->appendFile('/js/admin/modadmingroup.js','text/javascript');
		$this->view->headScript()->appendFile('/js/EscapeAdminLevel2.js','text/javascript');

		/*
		 * CSS
		 */
		$this->view->headLink()->appendStylesheet('/css/main/main.css');
		$this->view->headLink()->appendStylesheet('/css/admin/stylesheet_gestionadmingroupe.css');

		$form = new Application_Form_Admin_ModAdminGroupForm();


		if($this->getRequest()->isPost()) {
			$formdata=$this->getRequest()->getPost();
			$action = $this->getRequest()->getParam("what");
			$id_group = $this->getRequest()->getParam("group");
			if($id_group != -1) {
				switch ($action) {
					/*
					 * Add an admin
					 */
					case 0:
						try {
							$user = Application_Model_User::getByLogin($this->getRequest()->getParam("user"));
							/*
							 * If the user has no password, we check the password provided.
							 */
							if($user->getPwd() == '') {
								$pwd = $this->getRequest()->getParam("pwd");
								$pwd_verif = $this->getRequest()->getParam("pwd_verif");
								if(mb_strlen($pwd) < 6) {
									throw new Zend_Exception("Le mot de passe doit faire plus de 6 caractères.");
								} else if ($pwd != $pwd_verif) {
									throw new Zend_Exception("Les mots de passe fournis ne sont pas identiques.");
								} else {
									$user->changePwd(md5($pwd));
									$this->message("Le mot de passe de ".$user->getLogin()." a bien été changé.");
								}
							}
							$this->message(Application_Model_RolesUsers::addMembre(Application_Model_RolesUsers::ADMIN_ID,
							$user->getLogin(), $id_group));
						} catch (Zend_Exception $e) {
							$this->error($e->getMessage());
						}
						break;
					case 1:
						try {
							if(Application_Model_RolesUsers::removeAdmin($id_group, $this->getRequest()->getParam('admin'))) {
								$this->message("Le password de ".$this->getRequest()->getParam('admin')." a été supprimé, cet utilisateur n'a plus accès à CodeBar.");
							}
							$this->message($this->getRequest()->getParam('admin')." n'a plus le rôle d'admin dans ce groupe.");
						} catch (Zend_Exception $e) {
							$this->error($e->getMessage());
						}
						break;
					default:
						$this->error("Seuls deux choix sont possibles (ajouter ou supprimer un admin).");
				}
			}
			/*
			 * On redirige vers la même page
			 * pour éviter le double envoi du
			 * formulaire.
			 */
			$this->redirect();
		}
		$this->view->form = $form;
	}

	/**
	 *
	 * To modify the password of a user.
	 */
	public function modpwdAction() {
		//TODO gérer le changement de password des admins généraux.
		$this->view->headTitle("Passwords");
		$this->jQueryUIEnable();

		/*
		 * JS
		 */
		$this->view->headScript()->appendFile('/js/jquery/iphone-switch/jquery.iphone-switch.js','text/javascript');
		$this->view->headScript()->appendFile('/js/admin/modpwd.js','text/javascript');
		$this->view->headScript()->appendFile('/js/disable.js','text/javascript');
		$this->view->headScript()->appendFile('/js/EscapeAdminLevel2.js','text/javascript');

		/*
		 * CSS
		 */
		$this->view->headLink()->appendStylesheet('/css/main/main.css');
		$this->view->headLink()->appendStylesheet('/css/admin/stylesheet_mdpadmin.css');

		$form = new Application_Form_Admin_ModPwdForm();
		$this->view->form = $form;
		if($this->getRequest()->isPost()) {//si on arrive sur cette page après un Post alors on analyse les données
			$formData = $this->getRequest()->getPost();
			if($form->isValid($formData)) {
				if($form->getValue('suppr')) {
					//TODO supprimer les rôles de cet user.
					Application_Model_User::getByLogin($form->getValue('user'))
					->changePwd("");
					$this->session()->msg = "L'accès à CodeBar de ".$form->getValue('user')." a bien été révoqué.";
				} else {
					if($form->getValue('pwd') == $form->getValue('pwd_verif') && mb_strlen($form->getValue('pwd')) >= 6) {
						try {
							$user = Application_Model_User::getByLogin($form->getValue('user'));
							if($user->getPwd() == "") {
								$this->error("L'utilisateur ".$form->getValue('user')." ne peut pas se connecter à CodeBar, vous ".
								"ne pouvez pas changer son password. Si vous voulez lui en attribuer un, donnez lui un rôle dans ".
								"l'un des groupes.");
							} else {
								$user->changePwd(md5($form->getValue('pwd')));
								$this->message("Le password de l'utilisateur ".$form->getValue('user')." a bien été changé.");
							}
						} catch(Zend_Exception $e) {
							$this->error($e->getMessage());
						}
					} else if($form->getValue('pwd') == $form->getValue('pwd_verif')) {//si le mot de passe fait moins de 6 caractères
						$this->error("Le mot de passe doit faire au moins 6 caractères !");
					} else {
						$this->error("Les mots de passe ne sont pas identiques !");
					}
				}
			}
			/*
			 * On redirige vers la même page
			 * pour éviter le double envoi du
			 * formulaire.
			 */
			$this->redirect();
		}
	}

	/**
	 *
	 * To create a new card for a user.
	 */
	public function carteAction() {
		$this->view->headTitle("Nouvelle carte");

		/*
		 * JS
		 */
		$this->view->headScript()->appendFile('/js/TriUsers.js','text/javascript');
		$this->view->headScript()->appendFile('/js/EscapeAdminLevel2.js','text/javascript');

		/*
		 * CSS
		 */
		$this->view->headLink()->appendStylesheet('/css/main/main.css');
		$this->view->headLink()->appendStylesheet('/css/stylesheet_generercarte.css');

		$form=new Application_Form_Admin_NewCardForm();

		if($this->getRequest()->isPost()) {
			$formData = $this->getRequest()->getPost();
			if($form->isValid($formData)) {
				try {
					if(isset($formData['cible'])) {
						$user = Application_Model_User::getByLogin($formData['cible']);
						$test = $user->NewCarte();
						$user = $user->setIdCarte($test);
						$user->update();
						echo "<script language=\"javascript\">";
						echo "alert(\"Le numéro de la nouvelle carte de l'user ".$user->getLogin()." est : ";
						echo $test;
						echo "\")</script>";
					} else {
						echo "<script language=\"javascript\">";
						echo "alert(\"Veuillez sélectionner un utilisateur dans la liste.";
						echo "\")</script>";
					}
				} catch(Zend_Exception $e) {
					$this->view->error = $e->getMessage();
				}
			}
		}
		$form=new Application_Form_Admin_NewCardForm();
		$this->view->form=$form;
	}

	/**
	 *
	 * To check that every recharge have been accounted for.
	 */
	public function rechargesAction() {
		$this->jQueryUIEnable();
		$this->view->headTitle("Vérifications");

		/*
		 * JS
		 */
		$this->view->headScript()->appendFile('/js/jquery.ui.datepicker-fr.js','text/javascript');
		$this->view->headScript()->appendFile('/js/jquery.dataTables.min.js','text/javascript');
		$this->view->headScript()->appendFile('/js/rapport.js','text/javascript');
		$this->view->headScript()->appendFile('/js/EscapeAdminLevel2.js','text/javascript');

		/*
		 * CSS
		 */
		$this->view->headLink()->appendStylesheet('/css/main/main.css');
		$this->view->headLink()->appendStylesheet('/css/stylesheet_rapport.css');

		$form = new Application_Form_Admin_RechargesForm();

		$tab = '<table>';

		if($this->getRequest()->isPost()) {
			$formData = $this->getRequest()->getPost();
			if($form->isValid($formData)) {
				$tab = $tab.'<tr><th>ID</th><th>Login vendeur</th><th>Date</th><th>Libellé</th><th>Montant</th><th>Vérifié ?</th></tr>';

				$id_transac = $form->getValue('num_transac');
				/*
				 * If we want to see a specific transaction.
				 */
				if($id_transac != '') {
					try {
						$h = Application_Model_HistoCarteElement::getByIdTransac($form->getValue('num_transac'));
						$ckbx = new Zend_Form_Element_Checkbox('verif'.$h->getID());
						$ckbx->clearDecorators()
						->setDecorators(array('ViewHelper','FormErrors','Errors'))
						->setLabel($h->getID());
						if(isset($_POST['verif'.$h->getID()])) {
							if($_POST['verif'.$h->getID()] != $h->getVerif()) {
								try {
									$h->changeVerif();
								} catch(Zend_Exception $e) {
									$this->view->error = $e->getMessage();
								}
							}
						}

						$ckbx->setValue($h->getVerif());
						$form->addElements(array($ckbx));

						$tab = $tab.'<tr><td>'.$h->getID().'</td><td>'.$h->getVendeur()->getLogin().'</td><td>'.$h->getTime().'</td><td>'.$h->getCommentaire().'</td><td>'.$h->getMontant().'€</td><td>'.$form->getElement('verif'.$h->getID()).'</td></tr>';
							
					} catch(Zend_Exception $e) {
						$this->view->error = $e->getMessage();
					}
					/*
					 * All other cases.
					 */
				} else {
					$date1=$form->getValue('date1');
					$date1 = substr($date1,6,4).'-'.substr($date1,3,2).'-'.substr($date1,0,2).' 00:00:00';
					$date2=$form->getValue('date2');
					$date2 = substr($date2,6,4).'-'.substr($date2,3,2).'-'.substr($date2,0,2).' 23:59:59';
					$verif = $form->getValue('verif');
					$noverif = $form->getValue('noverif');

					try {
						$histo = Application_Model_HistoCarteElement::getBetweenDates($date1,$date2,$verif,$noverif);
						foreach($histo as $h) {
							$ckbx = new Zend_Form_Element_Checkbox('verif'.$h->getID());
							$ckbx->clearDecorators()
							->setDecorators(array('ViewHelper','FormErrors','Errors'))
							->setLabel($h->getID());

							if(isset($_POST['verif'.$h->getID()])) {
								if($_POST['verif'.$h->getID()] != $h->getVerif()) {
									try {
										$h->changeVerif();
									} catch(Zend_Exception $e) {
										$this->view->error = $e->getMessage();
									}
								}
							}

							if ($verif && $h->getVerif() || $noverif && !$h->getVerif()) {
								$ckbx->setValue($h->getVerif());
								$form->addElements(array($ckbx));
								$tab = $tab.'<tr><td>'.$h->getID().'</td><td>'.$h->getVendeur()->getLogin().'</td><td>'.$h->getTime().'</td><td>'.$h->getCommentaire().'</td><td>'.$h->getMontant().'€</td><td>'.$form->getElement('verif'.$h->getID()).'</td></tr>';
							}
						}
					}
					catch(Zend_Exception $e) {
						$this->view->error = $e->getMessage();
					}
				}
			}
		}

		$tab = $tab.'</table>';
		$this->view->tab = $tab;
		$this->view->form = $form;

	}

	/**
	 *
	 * Internal action used with Ajax for
	 * jQuery autocomplete.
	 */
	public function searchusersAction() {
		$request = $this->getRequest();
		$term = $request->getParam('term');
		$results = Application_Model_User::search($term);
		$users = array();
		foreach ($results as $user) {
			$users[$user->getLogin()] = $user->getLogin();
		}
		$this->_helper->json(array_values($users));
	}

	/**
	 * Internal action used with Ajax to
	 * retrieve the information on a user.
	 */
	public function infouserAction() {
		$login = $this->getRequest()->getParam('login');
		$result = array();
		try {
			$user = Application_Model_User::getByLogin($login);
			$result['login'] = $login;
			$result['nom'] = $user->getNom();
			$result['prenom'] = $user->getPrenom();
			$result['promo'] = $user->getPromo();
			$result['solde'] = $user->getSolde();
			$result['hasPwd'] = ($user->getPwd() != '');
		} catch(Zend_Exception $e) {}
		$this->_helper->json($result);
	}

	/**
	 * Internal action used with Ajax to
	 * know if a given login already exists or not.
	 */
	public function loginexistAction() {
		$login = $this->getRequest()->getParam('login');
		$result = array();
		try {
			$user = Application_Model_User::getByLogin($login);
			$result['exist'] = true;
		} catch (Zend_Exception $e) {
			$result['exist'] = false;
		}
		$this->_helper->json($result);
	}

	/**
	 * Internal action used with ajax to
	 * retrieve the admin of a group (but not
	 * the general admins).
	 */
	public function adminsofgroupAction() {
		$id_group = $this->getRequest()->getParam('id_group');
		$result = Application_Model_RolesUsers::getAdminsNotGeneral($id_group);
		$this->_helper->json($result);
	}

	/**
	 * Internal action used with Ajax to
	 * populate the historic table.
	 */
	public function histoajaxAction() {
		$this->_helper->layout->disableLayout();
		$this->view->histo = array();
		$date1 = $this->getRequest()->getParam('date1');
		$date1 = substr($date1,6,4).'-'.substr($date1,3,2).'-'.substr($date1,0,2).' 00:00:00';
		$date2 = $this->getRequest()->getParam('date2');
		$date2 = substr($date2,6,4).'-'.substr($date2,3,2).'-'.substr($date2,0,2).' 23:59:59';
		try {
			$user = Application_Model_User::getByLogin($this->getRequest()->getParam('user'));
		} catch (Zend_Exception $e) {
			$user = '';
		}
		$this->view->histo = Application_Model_HistoSystemElement::searchHistoSystem($date1, $date2, $user);
	}

}
